package com.fishv.fishvdianping.config;


import com.fishv.fishvdianping.common.LoginInterceptor;
import com.fishv.fishvdianping.common.RefreshTokenInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

import javax.annotation.Resource;

@Configuration
public class MvcConfig implements WebMvcConfigurer {

    @Resource
    private StringRedisTemplate stringRedisTemplate;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 登录拦截器
        registry.addInterceptor(new LoginInterceptor()).excludePathPatterns("/shop/**",
                "/shop-type/**", "/upload/**", "/blog/hot",
                "/user/code", "/user/login", "/doc.html",
                "/webjars/**","/swagger-resources","/favicon.ico",
                "/v2/api-docs/**", "/swagger-ui.html").order(1);
        // token刷新的拦截器
        RefreshTokenInterceptor refreshTokenInterceptor = new RefreshTokenInterceptor();
        refreshTokenInterceptor.setStringRedisTemplate(stringRedisTemplate);

        registry.addInterceptor(refreshTokenInterceptor).addPathPatterns("/**").order(0);
    }
}
